Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UEOF 101 #33

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open

UEOF 101 #33

wants to merge 14 commits into from

Conversation

AlbanSdl
Copy link
Member

@AlbanSdl AlbanSdl commented Jul 19, 2024

Les nouvelles UEs

Cette pull request introduit une nouvelle structure pour les UEs qui reprend celle choisie par l'UTT : le découpage en UEOF (unité d'enseignement - offre de formation, si vous n'avez pas le sigle)

Cependant le but du site étudiant est de garder les choses simples pour les étudiants. Ainsi la recherche se fera toujours avec le nom de vos UEs tels que vous les connaissez. Ainsi on pourra chercher NF06 et pas NF06_FR_TRO_U23 afin d'espérer obtenir un résultat (et le site étu affichera NF06 pour des raisons d'esthétique et aussi de compréhensibilité)

Cependant une fois sur la page de l'UE, il faut bien afficher des informations... mais quelle UEOF choisir ? Par défaut, les données affichées correspondront à une offre de formation ouverte et dans le profil de l'utilisateur enseignée dans sa langue. Ces paramètres seront modifiables et l'utilisateur a également la possibilité de consulter les informations des autres UEOFs de l'UE.
Ainsi, si on regarde l'UE MT03 en ayant renseigné l'anglais comme langue préférée, on verra la page de MT03A (si enseignée ce semestre, sinon ce sera la page de MT03)

Afin de conserver une certaine logique, les annales et commentaires sont liés à la fois aux UEs et aux UEOFs. Cela permet d'avoir le plus de données sur une UE lors des choix de matières et le plus de sujets pour réviser, tout en gardant en tête qu'il peut y avoir des changements de programme/de modalités d'enseignements d'une offre de formation à l'autre.

Cette nouvelle structure en offre de formations nous permettra également de suivre l'évolution des formations, en affichant la dernière mis à jour du programme des UEs, la date de création de l'UE, et de pondérer les appréciations des étudiants en fonction de ces modifications.

Fonctionnalités

Les fonctionnalités liées au nouveau format des UEs dans la base de données seront divisés en plusieurs pull requests. La présente PR a pour but de mettre en place la structure, et d'adapter le code existant, les tests, le seeding pour prendre en compte ces modifications. Les suivantes ajouteront d'avantage de fonctionnalités.

Dans #33

  • modification de la structure de la db
  • ajout d'un script d'import des UEs depuis les données fournies par la DFP
  • mise à jour de l'import depuis l'ancien etuutt
  • correction et mise à jour des tests
  • ajout des alias d'ues (ex. redirection de NF05 à NF06)
  • ajout d'une doc

Ultérieurement (mais prévu)

  • rajouter davantage de filtres sur la recherche des UEs
  • intégrer les alias dans la recherche d'UEs
  • ajouter des paramètres pour le choix de l'affichage par défaut des UEOF
  • indiquer si les UEOF sont hors profil (et le rajouter en filtre de recherche)
  • pondérer les notes des utilisateurs en fonction de l'UEOF
  • ajouter une corbeille pour retrouver les commentaires & UGC supprimé
  • edit et import des données DFP via une interface admin
  • interface de modération de contenu

Edit : précision importante à propos des semestres

Certaines UEs sont renseignées par la DFP comme étant disponibles sur des laps de temps "inattendus" à savoir un intersemestre ou une année universitaire complète. Voici la table de correspondance entre le nom d'un "Semestre" et sa signification :

Sigle Signification
A24 Semestre d'automne 2024
P25 Semestre de printemps 2025
H25 Intersemestre d'hiver 2025
E25 Intersemestre d'été 2025
U24 Année universitaire 2024-2025

src/ue/ue.service.ts Dismissed Show dismissed Hide dismissed
src/ue/ue.service.ts Dismissed Show dismissed Hide dismissed
src/ue/ue.service.ts Dismissed Show dismissed Hide dismissed
@AlbanSdl AlbanSdl changed the title UE seeding UEOF 101 Jul 28, 2024
@AlbanSdl AlbanSdl marked this pull request as ready for review September 9, 2024 19:34
Copy link
Member

@TeddyRoncin TeddyRoncin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have fun

docs/doc_developers/api/ues.md Show resolved Hide resolved
docs/doc_developers/api/ues.md Show resolved Hide resolved
docs/doc_developers/api/ues.md Show resolved Hide resolved
> Attention, le concept d'UEOF n'existait pas avant 2023, donc les formations plus anciennes afficheront `U23` pour date de création !
- **UEOE :** offre d'enseignement d'UE. L'enseignement d'une UEOF pendant un semestre précis. Ces codes apparaissent principalement sur le dossier étudiant et les emplois du temps. Ils sont constitués du début du code des UEOF avec le code de la période d'enseignement. Dans le site étudiant, les `UserUeSubscription` joueront le même rôle que les UEOE à la différence près qu'ils sont également rattachés à l'étudiant. \
Exemples :`A24_NF10_FR_TRO`, `P25_MT01_FR_TRO`, `A24_APPTC_FR_TRO`
- **SIEP :** système informatique de l'enseignement et de la pédagogie. Le nouvel ERP de l'administration pour gérer les étudiants, leurs études et leurs données personnelles. Permet de centraliser tous les différents services qui existaient jusqu'à présent. \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ERP being ?
edit : j'ai menti, mais du coup mets la définition de ERP plus haut, ou ajoute un "cf définition plus bas"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

en vraiii je me suis plongé un peu dans la syntaxe de la doc avec l'autre pr
et je vais peut être reformater avec des liens et tout ça pourrait être sympa

docs/doc_developers/api/ues.md Outdated Show resolved Hide resolved
name: i % 3 == 0 ? 'CS' : 'TM',
createUe(
app,
{ branchOptions: [branchOptions[i % 4]] },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

j'en conclue donc que le *3 servait à rien XD

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

si, ça servait à distribuer les ues sur les 2 branches
branche1, branche2, branche1, branche2 mais avec toutes les modifications des tests, ce n'est plus très utile (puisque la distribution CS, TM n'est pas en %2)
Mais de toute façon il n'est pas très utile de varier tant que ça les données en vrai, ce sont juste les tests et peut être qu'une valeur random serait carrément mieux

test/utils/fakedb.ts Outdated Show resolved Hide resolved
test/utils/fakedb.ts Outdated Show resolved Hide resolved
@@ -797,15 +813,15 @@ export const createUeSubscription = entityFaker('userUeSubscription', {}, async
.get(PrismaService)
.userUeSubscription.create({
data: {
...omit(params, 'semesterId', 'ueId', 'userId'),
...omit(params, 'semesterId', 'ueofId', 'userId'),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

juste, parfois tu appelles ça ueofId et parfois ueofCode. Perso je suis plus pour le code, mais faut trouver un accord entre toi et toi même 😭

et sinon le ueofId/Code devrait pas être dans les params, puisqu'il est déjà dans les deps

@@ -884,12 +900,12 @@ export const createComment = entityFaker(
.get(PrismaService)
.withDefaultBehaviour.ueComment.create({
data: {
...omit(params, 'ueId', 'authorId', 'semesterId', 'status'),
...omit(params, 'ueofId', 'authorId', 'semesterId', 'status'),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same ici, ueofId est déjà dans les deps, donc pas dans les params normalement

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants